{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Tutorial on Causal Inference and its Connections to Machine Learning (Using DoWhy+EconML)\n",
    "This tutorial presents a walk-through on using DoWhy+EconML libraries for causal inference. Along the way, we'll highlight the connections to machine learning---how machine learning helps in building causal effect estimators, and how causal reasoning can be help build more robust machine learning models. \n",
    "\n",
    "Examples of data science questions that are fundamentally causal inference questions: \n",
    "* **A/B experiments**: If I change the algorithm, will it lead to a higher success rate?\n",
    "* **Policy decisions**: If we adopt this treatment/policy, will it lead to a healthier patient/more revenue/etc.?\n",
    "* **Policy evaluation**: Knowing what I know now, did my policy help or hurt?\n",
    "* **Credit attribution**: Are people buying because of the recommendation algorithm? Would they have bought anyway?\n",
    "\n",
    "In this tutorial, you will:\n",
    "* Learn how causal reasoning is necessary for decision-making, and the difference between a prediction and decision-making task.\n",
    "<br>\n",
    "\n",
    "* Get hands-on with estimating causal effects using the four steps of causal inference: **model, identify, estimate and refute**.\n",
    "<br>\n",
    "\n",
    "* See how DoWhy+EconML can help you estimate causal effects with **4 lines of code**, using the latest methods from statistics and machine learning to estimate the causal effect and evaluate its robustness to modeling assumptions.\n",
    "<br>\n",
    "\n",
    "* Work through **real-world case-studies** with Jupyter notebooks on applying causal reasoning in different scenarios including estimating impact of a customer loyalty program on future transactions, predicting which users will be positively impacted by an intervention (such as an ad), pricing products, and attributing which factors contribute most to an outcome.\n",
    "<br>\n",
    "\n",
    "* Learn about the connections between causal inference and the challenges of modern machine learning models."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "toc": true
   },
   "source": [
    "<h1>Table of Contents<span class=\"tocSkip\"></span></h1>\n",
    "<div class=\"toc\"><ul class=\"toc-item\"><li><span><a href=\"#Why-causal-inference?\" data-toc-modified-id=\"Why-causal-inference?-1\"><span class=\"toc-item-num\">1&nbsp;&nbsp;</span>Why causal inference?</a></span><ul class=\"toc-item\"><li><span><a href=\"#Defining-a-causal-effect\" data-toc-modified-id=\"Defining-a-causal-effect-1.1\"><span class=\"toc-item-num\">1.1&nbsp;&nbsp;</span>Defining a causal effect</a></span></li><li><span><a href=\"#The-difference-between-prediction-and-causal-inference\" data-toc-modified-id=\"The-difference-between-prediction-and-causal-inference-1.2\"><span class=\"toc-item-num\">1.2&nbsp;&nbsp;</span>The difference between prediction and causal inference</a></span></li><li><span><a href=\"#Two-fundamental-challenges-for-causal-inference\" data-toc-modified-id=\"Two-fundamental-challenges-for-causal-inference-1.3\"><span class=\"toc-item-num\">1.3&nbsp;&nbsp;</span>Two fundamental challenges for causal inference</a></span></li></ul></li><li><span><a href=\"#The-four-steps-of-causal-inference\" data-toc-modified-id=\"The-four-steps-of-causal-inference-2\"><span class=\"toc-item-num\">2&nbsp;&nbsp;</span>The four steps of causal inference</a></span><ul class=\"toc-item\"><li><span><a href=\"#The-DoWhy+EconML-solution\" data-toc-modified-id=\"The-DoWhy+EconML-solution-2.1\"><span class=\"toc-item-num\">2.1&nbsp;&nbsp;</span>The DoWhy+EconML solution</a></span></li><li><span><a href=\"#A-mystery-dataset:-Can-you-find-out-if-if-there-is-a-causal-effect?\" data-toc-modified-id=\"A-mystery-dataset:-Can-you-find-out-if-if-there-is-a-causal-effect?-2.2\"><span class=\"toc-item-num\">2.2&nbsp;&nbsp;</span>A mystery dataset: Can you find out if if there is a causal effect?</a></span><ul class=\"toc-item\"><li><span><a href=\"#Model-assumptions-about-the-data-generating-process-using-a-causal-graph\" data-toc-modified-id=\"Model-assumptions-about-the-data-generating-process-using-a-causal-graph-2.2.1\"><span class=\"toc-item-num\">2.2.1&nbsp;&nbsp;</span>Model assumptions about the data-generating process using a causal graph</a></span></li><li><span><a href=\"#Identify-the-correct-estimand-for-the-target-quantity-based-on-the-causal-model\" data-toc-modified-id=\"Identify-the-correct-estimand-for-the-target-quantity-based-on-the-causal-model-2.2.2\"><span class=\"toc-item-num\">2.2.2&nbsp;&nbsp;</span>Identify the correct estimand for the target quantity based on the causal model</a></span></li><li><span><a href=\"#Estimate-the-target-estimand\" data-toc-modified-id=\"Estimate-the-target-estimand-2.2.3\"><span class=\"toc-item-num\">2.2.3&nbsp;&nbsp;</span>Estimate the target estimand</a></span></li><li><span><a href=\"#Check-robustness-of-the-estimate-using-refutation-tests\" data-toc-modified-id=\"Check-robustness-of-the-estimate-using-refutation-tests-2.2.4\"><span class=\"toc-item-num\">2.2.4&nbsp;&nbsp;</span>Check robustness of the estimate using refutation tests</a></span></li></ul></li></ul></li><li><span><a href=\"#Case-studies-using-DoWhy+EconML\" data-toc-modified-id=\"Case-studies-using-DoWhy+EconML-3\"><span class=\"toc-item-num\">3&nbsp;&nbsp;</span>Case-studies using DoWhy+EconML</a></span><ul class=\"toc-item\"><li><span><a href=\"#Estimating-the-impact-of-a-customer-loyalty-program\" data-toc-modified-id=\"Estimating-the-impact-of-a-customer-loyalty-program-3.1\"><span class=\"toc-item-num\">3.1&nbsp;&nbsp;</span>Estimating the impact of a customer loyalty program</a></span></li><li><span><a href=\"#Recommendation-A/B-testing-at-an-online-company\" data-toc-modified-id=\"Recommendation-A/B-testing-at-an-online-company-3.2\"><span class=\"toc-item-num\">3.2&nbsp;&nbsp;</span>Recommendation A/B testing at an online company</a></span></li><li><span><a href=\"#User-segmentation-for-targeting-interventions\" data-toc-modified-id=\"User-segmentation-for-targeting-interventions-3.3\"><span class=\"toc-item-num\">3.3&nbsp;&nbsp;</span>User segmentation for targeting interventions</a></span></li><li><span><a href=\"#Multi-investment-attribution-at-a-software-company\" data-toc-modified-id=\"Multi-investment-attribution-at-a-software-company-3.4\"><span class=\"toc-item-num\">3.4&nbsp;&nbsp;</span>Multi-investment attribution at a software company</a></span></li></ul></li><li><span><a href=\"#Connections-to-fundamental-machine-learning-challenges\" data-toc-modified-id=\"Connections-to-fundamental-machine-learning-challenges-4\"><span class=\"toc-item-num\">4&nbsp;&nbsp;</span>Connections to fundamental machine learning challenges</a></span></li><li><span><a href=\"#Further-resources\" data-toc-modified-id=\"Further-resources-5\"><span class=\"toc-item-num\">5&nbsp;&nbsp;</span>Further resources</a></span><ul class=\"toc-item\"><li><span><a href=\"#DoWhy+EconML-libraries\" data-toc-modified-id=\"DoWhy+EconML-libraries-5.1\"><span class=\"toc-item-num\">5.1&nbsp;&nbsp;</span>DoWhy+EconML libraries</a></span></li><li><span><a href=\"#Video-Lecture-on-causal-inference-and-its-connections-to-machine-learning\" data-toc-modified-id=\"Video-Lecture-on-causal-inference-and-its-connections-to-machine-learning-5.2\"><span class=\"toc-item-num\">5.2&nbsp;&nbsp;</span>Video Lecture on causal inference and its connections to machine learning</a></span></li><li><span><a href=\"#Detailed-KDD-Tutorial-on-Causal-Inference\" data-toc-modified-id=\"Detailed-KDD-Tutorial-on-Causal-Inference-5.3\"><span class=\"toc-item-num\">5.3&nbsp;&nbsp;</span>Detailed KDD Tutorial on Causal Inference</a></span></li><li><span><a href=\"#Book-chapters-on-causality-and-machine-learning\" data-toc-modified-id=\"Book-chapters-on-causality-and-machine-learning-5.4\"><span class=\"toc-item-num\">5.4&nbsp;&nbsp;</span>Book chapters on causality and machine learning</a></span></li><li><span><a href=\"#Causality-and-Machine-Learning-group-at-Microsoft\" data-toc-modified-id=\"Causality-and-Machine-Learning-group-at-Microsoft-5.5\"><span class=\"toc-item-num\">5.5&nbsp;&nbsp;</span>Causality and Machine Learning group at Microsoft</a></span></li></ul></li></ul></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Why causal inference?\n",
    "Many key data science tasks are about decision-making. Data scientists are regularly called upon to support decision-makers at all levels, helping them make the best use of data in support of achieving desired outcomes. For example,  an executive making investment and resourcing decisions, a marketer determining discounting policies, a product team prioritizing which features to ship, or a doctor deciding which treatment to administer to a patient.  \n",
    "\n",
    "Each of these decision-makers is asking a what-if question.  Data-driven answers to such questions require understanding the *causes* of an event and how to take action to improve future outcomes.\n",
    "\n",
    "### Defining a causal effect \n",
    "Suppose that we want to find the causal effect of taking an action A on the outcome Y. To define the causal effect, consider two worlds: \n",
    "1. World 1 (Real World): Where the action A was taken and Y observed\n",
    "2. World 2 (*Counterfactual* World): Where the action A was not taken (but everything else is the same) \n",
    "\n",
    "Causal effect is the difference between Y values attained in the real world versus the counterfactual world. \n",
    "$${E}[Y_{real, A=1}] - E[Y_{counterfactual, A=0}]$$\n",
    "\n",
    "![Real and Counterfactual Worlds](images/real_vs_counterfactual_world.png)\n",
    "\n",
    "In other words, A causes Y iff changing A leads to a change in Y,\n",
    "*keeping everything else constant*. Changing A while keeping everything else constant is called an **intervention**, and represented by a special notation, $do(A)$. \n",
    "\n",
    "Formally, causal effect is the magnitude by which Y is changed by a unit *interventional* change in A:\n",
    "$$E[Y│do(A=1)]−E[Y|do(A=0)]$$\n",
    "\n",
    "To estimate the effect, the *gold standard* is to conduct a randomized experiment where a randomized subset of units is acted upon ($A=1$) and the other subset is not ($A=0$). These subsets approximate the disjoint real and counterfactual worlds and randomization ensures that there is not systematic difference between the two subsets (*\"keeping everything else constant\"*). \n",
    "\n",
    "However, it is not always feasible to a run a randomized experiment. To answer causal questions, we often need to rely on observational or logged data. Such observed data is biased by correlations and unobserved confounding and thus there are systematic differences in which units were acted upon and which units were not. For example, a new marketing campaign may be deployed during the holiday season, a new feature may only have been applied to high-activity users, or the older patients may have been more likely to receive the new drug, and so on. The goal of causal inference methods is to remove such correlations and confounding from the data and estimate the *true* effect of an action, as given by the equation above. \n",
    "\n",
    "\n",
    "### The difference between prediction and causal inference\n",
    "\n",
    "<table><tr>\n",
    "<td> <img src=\"images/supervised_ml_schematic.png\" alt=\"Drawing\" style=\"width: 400px;\"/> </td>\n",
    "<td> <img src=\"images/causalinference_schematic.png\" alt=\"Drawing\" style=\"width: 400px;\"/> </td>\n",
    "</tr></table>\n",
    "\n",
    "### Two fundamental challenges for causal inference\n",
    "We never observe the counterfactual world\n",
    "\n",
    "* Cannot directly calculate the causal effect\n",
    "* Must estimate the counterfactuals \n",
    "* Challenges in validation\n",
    "\n",
    "Multiple causal mechanisms can be fit to a single data distribution\n",
    "* Data alone is not enough for causal inference\n",
    "* Need domain knowledge and assumptions\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The four steps of causal inference\n",
    "\n",
    "Since there is no ground-truth test dataset available that an estimate can be compared to, causal inference requires a series of principled steps to achieve a good estimator. \n",
    "\n",
    "Let us illustrate the four steps through a sample dataset. This tutorial requires you to download two libraries: DoWhy and EconML. Both can be installed by the following command: `pip install dowhy econml`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Required libraries\n",
    "import dowhy\n",
    "from dowhy import CausalModel\n",
    "import dowhy.datasets\n",
    "\n",
    "# Avoiding unnecessary log messges and warnings\n",
    "import logging\n",
    "logging.getLogger(\"dowhy\").setLevel(logging.WARNING)\n",
    "import warnings\n",
    "from sklearn.exceptions import DataConversionWarning\n",
    "warnings.filterwarnings(action='ignore', category=DataConversionWarning)\n",
    "\n",
    "# Load some sample data\n",
    "data = dowhy.datasets.linear_dataset(\n",
    "    beta=10,\n",
    "    num_common_causes=5,\n",
    "    num_instruments=2,\n",
    "    num_samples=10000,\n",
    "    treatment_is_binary=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**I. Modeling**\n",
    "\n",
    "The first step is to encode our domain knowledge into a causal model, often represented as a graph. The final outcome of a causal inference analysis depends largely on the input assumptions, so this step is quite important. To estimate the causal effect, most common problems involve specifying two types of variables: \n",
    "\n",
    "1. **Confounders**: These are variables that cause both the action and the outcome. As a result, any observed correlation between the action and the outcome may simply be due to the confounder variables, and not due to any causal relationship from the action to the outcome. \n",
    "\n",
    "2. **Instrumental Variables**: These are special variables that cause the action, but do not directly affect the outcome. In addition, they are not affected by any variable that affects the outcome. Instrumental variables can help reduce bias, if used in the correct way. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_model:Causal Graph not provided. DoWhy will construct a graph based on data inputs.\n"
     ]
    }
   ],
   "source": [
    "# I. Create a causal model from the data and domain knowledge.\n",
    "model = CausalModel(\n",
    "    data=data[\"df\"],\n",
    "    treatment=data[\"treatment_name\"],\n",
    "    outcome=data[\"outcome_name\"],\n",
    "    common_causes=data[\"common_causes_names\"],\n",
    "    intrumental_variables=data[\"instrument_names\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To visualize the graph, we can write,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "model.view_model(layout=\"dot\")\n",
    "from IPython.display import Image, display\n",
    "display(Image(filename=\"causal_model.png\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In general, you can specify a causal graph that describes the mechanisms of the data-generating process for a given dataset. Each arrow in the graph denotes a causal mechanism: \"A->B\" implies that the variable A causes variable B.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# I. Create a causal model from the data and given graph.\n",
    "model = CausalModel(\n",
    "    data=data[\"df\"],\n",
    "    treatment=data[\"treatment_name\"][0],\n",
    "    outcome=data[\"outcome_name\"][0],\n",
    "    graph=data[\"gml_graph\"])\n",
    "model.view_model(layout=\"dot\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**II. Identification**\n",
    "\n",
    "Both ways of providing domain knowledge (either through named variable sets of confounders and instrumental variables, or through a causal graph) correspond to an underlying causal graph. Given a causal graph and a target quantity (e.g., effect of A on B), the process of identifcation is to check whether the target quantity can be estimated given the observed variables. Importantly, identification only considers the names of variables that are available in the observed data; it does not need access to the data itself. Related to the two kinds of variables above, there are two main identification methods for causal inference. \n",
    "\n",
    "1. **Backdoor criterion** (or more generally, adjustment sets): If all common causes of the action A and the outcome Y are observed, then the backdoor criterion implies that the causal effect can be identified by conditioning on all the common causes. This is a simplified definition (refer to Chapter 3 of the CausalML book for a formal definition).\n",
    "$$ E[Y│do(A=a)] = E_W E[Y|A=a, W=w]$$\n",
    "       \n",
    "where $W$ refers to the set of common causes (confounders) of $A$ and $Y$. \n",
    "\n",
    "2. **Instrumental variable (IV) identification**: If there is an instrumental variable available, then we can estimate effect even when any (or none) of the common causes of action and outcome are unobserved. The IV identification utilizes the fact that the instrument only affects the action directly, so the effect of the instrument on the outcome can be broken up into two sequential parts: the effect of the instrument on the action and the effect of the action on the treatment. It then relies on estimating the effect of the instrument on the action and the outcome to estimate the effect of the action on the outcome. For a binary instrument, the effect estimate is given by,\n",
    "    \n",
    " $$ E[Y│do(A=1)] -E[Y│do(A=0)]  =\\frac{E[Y│Z=1]- E[Y│Z=0]}{E[A│Z=1]- E[A│Z=0]} $$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_identifier:If this is observed data (not from a randomized experiment), there might always be missing confounders. Causal effect cannot be identified perfectly.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimand type: nonparametric-ate\n",
      "\n",
      "### Estimand : 1\n",
      "Estimand name: backdoor1 (Default)\n",
      "Estimand expression:\n",
      "  d                                 \n",
      "─────(Expectation(y|W3,W4,W1,W2,W0))\n",
      "d[v₀]                               \n",
      "Estimand assumption 1, Unconfoundedness: If U→{v0} and U→y then P(y|v0,W3,W4,W1,W2,W0,U) = P(y|v0,W3,W4,W1,W2,W0)\n",
      "\n",
      "### Estimand : 2\n",
      "Estimand name: iv\n",
      "Estimand expression:\n",
      "Expectation(Derivative(y, [Z1, Z0])*Derivative([v0], [Z1, Z0])**(-1))\n",
      "Estimand assumption 1, As-if-random: If U→→y then ¬(U →→{Z1,Z0})\n",
      "Estimand assumption 2, Exclusion: If we remove {Z1,Z0}→{v0}, then ¬({Z1,Z0}→y)\n",
      "\n",
      "### Estimand : 3\n",
      "Estimand name: frontdoor\n",
      "No such variable found!\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# II. Identify causal effect and return target estimands\n",
    "identified_estimand = model.identify_effect(proceed_when_unidentifiable=True)\n",
    "print(identified_estimand)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**III. Estimation**\n",
    "\n",
    "As the name suggests, the estimation step involves building a statistical estimator that can compute the target estimand identified in the previous step. Many estimators have been proposed for causal inference. DoWhy implements a few of the standard estimators while EconML implements a powerful set of estimators that use machine learning.   \n",
    "\n",
    "We show an example of using Propensity Score Stratification using DoWhy, and a machine learning-based method called Double-ML using EconML."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*** Causal Estimate ***\n",
      "\n",
      "## Identified estimand\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "## Realized estimand\n",
      "b: y~v0+W3+W4+W1+W2+W0\n",
      "Target units: ate\n",
      "\n",
      "## Estimate\n",
      "Mean value: 10.150239426081445\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# III. Estimate the target estimand using a statistical method.\n",
    "propensity_strat_estimate = model.estimate_effect(identified_estimand,\n",
    "                                 method_name=\"backdoor.dowhy.propensity_score_stratification\")\n",
    "\n",
    "print(propensity_strat_estimate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/amit/py-envs/env3.8/lib/python3.8/site-packages/sklearn/utils/deprecation.py:143: FutureWarning: The sklearn.ensemble.forest module is  deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.ensemble. Anything that cannot be imported from sklearn.ensemble is now part of the private API.\n",
      "  warnings.warn(message, FutureWarning)\n",
      "/home/amit/py-envs/env3.8/lib/python3.8/site-packages/sklearn/utils/deprecation.py:143: FutureWarning: The sklearn.ensemble.base module is  deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.ensemble. Anything that cannot be imported from sklearn.ensemble is now part of the private API.\n",
      "  warnings.warn(message, FutureWarning)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*** Causal Estimate ***\n",
      "\n",
      "## Identified estimand\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "## Realized estimand\n",
      "b: y~v0+W3+W4+W1+W2+W0 | \n",
      "Target units: ate\n",
      "\n",
      "## Estimate\n",
      "Mean value: 9.876750484947165\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import econml\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.linear_model import LassoCV\n",
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "dml_estimate = model.estimate_effect(identified_estimand, \n",
    "                                    method_name=\"backdoor.econml.dml.DMLCateEstimator\",\n",
    "                                    method_params={\n",
    "                                        'init_params': {'model_y':GradientBoostingRegressor(),\n",
    "                                                        'model_t': GradientBoostingRegressor(),\n",
    "                                                        'model_final':LassoCV(fit_intercept=False), },\n",
    "                                        'fit_params': {}\n",
    "                                     })\n",
    "print(dml_estimate)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**IV. Refutation**\n",
    "\n",
    "Finally, checking robustness of the estimate is probably the most important step of a causal analysis. We obtained an estimate using Steps 1-3, but each step may have made certain assumptions that may not be true. Absent of a proper validation \"test\" set, this step relies on *refutation* tests that seek to refute the correctness of an obtained estimate using properties of a good estimator. For example, a refutation test (`placebo_treatment_refuter`) checks whether the estimator returns an estimate value of 0 when the action variable is replaced by a random variable, independent of all other variables.   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Use a Placebo Treatment\n",
      "Estimated effect:10.150239426081445\n",
      "New effect:0.0012610352100705785\n",
      "p value:0.48\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# IV. Refute the obtained estimate using multiple robustness checks.\n",
    "refute_results = model.refute_estimate(identified_estimand, propensity_strat_estimate,\n",
    "                                       method_name=\"placebo_treatment_refuter\")\n",
    "print(refute_results)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The DoWhy+EconML solution\n",
    "We will use the DoWhy+EconML libraries for causal inference. DoWhy provides a general API for the four steps and EconML provides advanced estimators for the Estimation step.  \n",
    "\n",
    "DoWhy allows you to visualize, formalize, and test the assumptions they are making, so that you can better understand the analysis and avoid reaching incorrect conclusions. It does so by focusing on assumptions explicitly and introducing automated checks on validity of assumptions to the extent possible. As you will see, the power of DoWhy is that it provides a formal causal framework to encode domain knowledge and it can run automated robustness checks to validate the causal estimate from any estimator method.\n",
    "\n",
    "Additionally, as data becomes high-dimensional, we need specialized methods that can handle known confounding. Here we use EconML that implements many of the state-of-the-art causal estimation approaches.  This package has a common API for all the techniques, and each technique is implemented as a sequence of machine learning tasks allowing for the use of any existing machine learning software to solve these subtasks, allowing you to plug-in the ML models that you are already familiar with rather than learning a new toolkit.  The power of EconML is that you can now implement the state-of-the-art in causal inference just as easily as you can run a linear regression or a random forest.\n",
    "\n",
    "Together, DoWhy+EconML make answering what if questions a whole lot easier by providing a state-of-the-art, end-to-end framework for causal inference, including the latest causal estimation and automated robustness procedures. \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### A mystery dataset: Can you find out if if there is a causal effect?\n",
    "To walk-through the four steps, let us consider the **Mystery Dataset** problem. Suppose you are given some data with treatment and outcome. Can you determine whether the treatment causes the outcome, or the correlation is purely due to another common cause?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import math\n",
    "import dowhy.datasets, dowhy.plotter"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below we create a dataset where the true causal effect is decided by random variable. It can be either 0 or 1. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   Treatment    Outcome        w0         s        w1\n",
      "0  13.058206  26.046916  2.578358  1.807674  1.795430\n",
      "1  21.351876  42.966578 -3.974920  7.158368 -1.027735\n",
      "2  16.483037  32.768884 -3.171861  7.910021  1.120422\n",
      "3  21.822333  43.611113 -3.995551  6.933299 -1.087260\n",
      "4   7.914766  15.624022  1.218491  1.332214  0.610595\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvYAAAGTCAYAAABDMFZUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAACBTUlEQVR4nO3deXwU9f0/8NcndzgTCIhEEFCOioFEUETrXa96EECgRax+tcVK61lR8NZ4UPH61VrPSj0rRzEKeKF4VUEL3QBFOeXQsNyEEFiSTfL5/TG7sGxmdj8zOzN7vZ6PRx4kO5+Z/bCZ7L7nM+/P+yOklCAiIiIiouSWEe8OEBERERFR7BjYExERERGlAAb2REREREQpgIE9EREREVEKYGBPRERERJQCGNgTEREREaWArHh3IBZFRUWyR48e8e4GERGRa5YsWbJDStkp3v0gosST1IF9jx49sHjx4nh3g4iIyDVCiI3x7gMRJSam4hARERERpQAG9kREREREKYCBPRERERFRCmBgT0RERESUAhjYExERERGlAAb2REREREQpgIE9EREREVEKYGBPRERERJQCGNgTEREREaUABvahvF7gjDOALVvi3RMiIiIiIlMY2IeqqAD+/W/tXyIiIiKiJCKklPHug2WDBw+WixcvtudgXi/Qqxdw4ACQnw/88APQpYs9xyYiIrKJEGKJlHJwvJ5/yZIlAsBZWVlZo4QQp0kp28SrL0TpQAhRJ6X8srGxcSaATwcNGmQYvGe52K/EVlEBNDdr3zc1aT8/80x8+0RERJRAlixZIjIyMm7Pz8//badOnWS7du3qsrKydggh4t01opQkpURjY2NmbW3tL7Zv336uz+d7acmSJX82Cu6ZigNoo/XTpgENDdrPDQ3az8y1JyIiCnVWfn7+b4899tjajh077snOzm5iUE/kHCEEsrOzmzp27Ljn2GOPrc3Pz/8tgLOM2jOwBw4frQ8KjtoTERERACArK2tUp06dZFZWVnP01kRkp6ysrOZOnTohKytrlFEbBvYAsHDhodH6oIYG4Ouv49MfIiKiBCSEOK1du3Z18e4HUbpq165dnRDiNKPtDOwBwOMBpAQ++gjIzAQ++UT72eOJd8+IiIgShpSyTVZWVlO8+0GUrrKyshojTVhnYB9q5EgtBWf48Hj3hIiIUkEKro/CnHqi+In298fAPmj+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y5aq9957b9UxxxxzAADuueeebl6vt8U5tHr16pwLL7yw79atW7N79ep14Jlnnlm/atWq5du2bav68ssvvx89evQOAPjb3/7WZerUqUXh+8dL0v4xxMXnn8e7B0RERAQAd955JJYsaYM77+yK117bFO/uWLFu3bqDix/87Gc/M1UX9dhjjz3g9Xpztm3blu33+5GdnR19pwgyMjLQvn375tzc3IN5Ze3btzccLX/uuec6fP755+0B4KabbvI++eSTm0O3d+3atfGcc87Z9/DDD3tDH//yyy9bzZw5swgAfvWrX+345z//efBCokuXLr6hQ4duLCwsbHzuuee6fPLJJwWzZs1qd9lll+lOEN62bVv2xx9/vPKMM87YH3zs97///a4DBw6Im2++uUdVVVXr5cuXt3rggQd+vPPOO7cF21x44YV1s2fPXltaWnq8z+fLeO211wpvu+227aHHvvbaa7vX1tZmlpSU7Pvqq69Wt23b9uBr0alTp/0///nPN3bp0sX/l7/85ciHH364+LrrrtvZpk2bCDl57uCIvRlnnBHvHhAREdHGjdmYNasIUgIzZxYl66j97t27D/a7Q4cOTWb2bd++/cE63Nu2bXP9///cc891BoDevXv7Hnvssc1G7cIvOF544YUiAMjLy2v+61//+pPePk888cTmDh06NALA3//+d8PR8EsuuWRXaFAfdOWVV+4WgRWfu3Tp4p88efK28DYDBgyoP+644/YDwH/+85/WodtWrFiRG7xoefrppzeFBvWhHnroIW9+fn5zTU1N1ttvv93eqJ9uYmBvxtdfx7sHRESUTALBBdnszjuPRHByZXMzcOedXePbofgymmjqlF27dmWsWLGiNQBcdtllu4yq+Oj59ttv2wDAKaecUtuxY0fdi5n8/Hz5i1/8ogYA/vOf/xhOAj733HN1R/ILCwubCwsLGwHg5z//eW1Ghn64e/TRR9cDLS+MPvjgg7ZSSrRv376ptLT0wJ49ezL0vpqamkSvXr0OBPrZSu853JaUV7iOat8e2LNHf9srr7jbFyIiSnxeL5CdrZ9n//HH7vcn1QVH6/1+7arJ7xeYObMIDz20Gd27J9VqksHgEwB27dqlHh0D2LNnz8EYrnPnzqZG+2O1Zs2a3ODFRGlpaYsR80g2b96cAwD9+vU7EKndcccd5wOAnTt3Zh04cEDk5eW1SHPp2rWr4eSWvLy8ZgA44ogjorY5cODAYZH/qlWr8gBgz549mQUFBWWR+hm0Y8eO2HKhbMIR+3AHIpxnI0a41w8iIkoOFRXGk2cvu8zdvqSD0NH6oCQdte/Vq9fBiaUrV67Mi9Q23Lp16/IAoHPnzv7QvHg37Nmz52D8GCkPX4/P58sEgDZt2kS8GAlNf6mpqdGNV1XuFKi0kVIedmuttrbW1EUWANTX1yfE7TmO2Juxbl28e0BERInmiy+Mt+2OSxXC1LZ4ceuDo/VBfr9AWJ50MjjzzDPrMjMz0dTUhK+++qotAG/UnQCsXbs2OzjyPXjw4IPVdIRi6ldjY2NMQWhoMB8a5KvIz89vqqury6yrq4sYPNfV1R08bkFBgau5Rq1bt24GgCOPPLJh8+bNy9187lhxxD7c1VfHuwdERJRMBg0y3nbMMe71I12sXPk9pFzS4mvlyu/j3TWzOnTo0DxkyJBaQMslX7lyZU60fQDg+eefPzihdNiwYQevHvPz8w8GwPv37zcM3rdt2xZT2kjv3r3rgyPhS5cuNZVbXlxc3AAcSncx8t133+UDQFFRkV8vDcdJvXr1qge0evV1dXUJMRKvioF9uEiLVBEREYWbN894G+/0UhQ33njjVkCbAPvHP/6xW7T269evz3722We7ANqI8v/93/8dDOw7d+7clJWVJQFg9erVuoHzrl27MpYuXWp4dyM7O/tgEN3YqD9loUOHDs3HH3/8PgCYOXOm4Sqxek466aQ6APj666/b7dq1SzcO9fl8IljnPvSOhFsuvPDCWkC7s/HGG28k1dLRDOzDeTzAOefobzv3XHf7QkREiY8rklMMRo8eXXvhhRfuBoBPPvmk4Nprrz0quGhVuOrq6qwLLrig9759+zKEEHj66ac3hpaTzM3Nlf369fMBxgH3n/70p2Kfz2cY/3Xq1OlgNL9x40bDkf1rr712GwCsWbMm//bbbz/SqJ0/bP7J+PHjdwCAz+fLuOGGG3SXZb711lu77ty5MwsArrnmGt1VYZ10wgknHDj99NP3AMDdd9991KpVqyLeSVm1alWOz+dLiJF9BvZ6PvlE//H5893tBxERJb6f/cx4W56p+ZCUpl599dWNxx9//H4AeOGFF44YNGhQv+eff77DypUrc7Zs2ZL57bff5t9xxx1djj/++P6rV6/OB4DJkydXjxw5skW5x7Fjx+4AgGXLlrUeMWJEz//+979527dvz/ziiy9alZeX93zllVc6B9Nh9Jx00kn7g+Uh77jjjq5r167Nrq+vF36//7AR/GuvvXbXGWecsQcAHnvssa6//OUve82ZM6dtdXV1ltfrzfr8889bTZ48uUvPnj1LQo//85//fP+oUaN2AMAbb7zRadiwYT2//PLLVlu3bs385ptv8seOHXv03/72ty4AcPbZZ9cYLU7ltBdffHFTQUFB4/bt27OHDBly3O23395l4cKF+Vu3bs3cvHlz1sKFC/OffPLJorPPPvvY/v37l9TU1JiecOsEIWXcF8mybPDgwXLx4sX2HzjS5JMkfr2IiMgBOTnGVXEc+MwQQiyRUg62/cAKli5dumHgwIGuj6Cmgz179mRceeWVR7/77rsdIsVm7du3b6qoqPjx+uuv36m33e/345RTTum7ePHiNuHbhBC48847f/ruu+/yZ8+e3fHEE0+s+/bbb1eFt7v44ot7zZs3r0UKSnj72trajOHDh/dcsGBBQaT/m5RySejP+/fvF8OGDesVTLfRM3To0L3z5s1bW1hYeNhth1WrVuX069evBADmzJmz+uKLL96rt39xcXHJ5s2bc26++WbvE088obuA1siRI3tEeh2WLFmSN3LkyGM3btyYG+n/l5mZCa/XW9WpUydXyo4uXbq0aODAgT30tnHEXk+OwR0Xo8eJiCh9GQX1ALBli3v9oKTWvn375srKyvVffPHF91dfffW23r17+9q1a9eUnZ0tO3Xq5B8yZMjee++996c1a9YsNwrqAW2l108//XT1rbfeurlXr14HcnJyZEFBQeNpp51W+/bbb6+uqKjYGq0vM2bMWH/LLbds7tOnjy9Y611Pu3btmj/55JN1b7755trzzz9/d+fOnf3Z2dmyoKCgsU+fPr5x48Zt/+CDD1oEzK1atZLz589fN23atHVnnnnmno4dOzZmZWXJwsLCxlNOOaX2mWeeWf/vf/97dXhQ77ZBgwYdWLly5Yonn3xyw5lnnrmnU6dO/uzsbJmbmyu7du3acNZZZ+25//77f1yzZs0yt4L6aDhirycrC9DLb8vMBAwmkhARUZqKdJd3wgTgmWdsfjqO2BOlM47Ym9Wunf7jrRJitWAiIkoWX38d7x4QURphYG9GnesVl4iIKJl5PPHuARGlEQb2ejIMXhYpgWXL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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "rvar = 1 if np.random.uniform() > 0.2 else 0\n",
    "is_linear = False # A non-linear dataset. Change to True to see results for a linear dataset.\n",
    "data_dict = dowhy.datasets.xy_dataset(10000, effect=rvar, \n",
    "                                      num_common_causes=2, \n",
    "                                      is_linear=is_linear, \n",
    "                                      sd_error=0.2) \n",
    "df = data_dict['df']                                                                                 \n",
    "print(df.head())    \n",
    "dowhy.plotter.plot_treatment_outcome(df[data_dict[\"treatment_name\"]], df[data_dict[\"outcome_name\"]],\n",
    "                             df[data_dict[\"time_val\"]]) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "#### Model assumptions about the data-generating process using a causal graph "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_model:Causal Graph not provided. DoWhy will construct a graph based on data inputs.\n"
     ]
    }
   ],
   "source": [
    "model= CausalModel(                                                                                                                      \n",
    "        data=df,                                                                                                                         \n",
    "        treatment=data_dict[\"treatment_name\"],                                                                                           \n",
    "        outcome=data_dict[\"outcome_name\"],                                                                                               \n",
    "        common_causes=data_dict[\"common_causes_names\"],                                                                                  \n",
    "        instruments=data_dict[\"instrument_names\"])                                                                                       \n",
    "model.view_model(layout=\"dot\")  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Identify the correct estimand for the target quantity based on the causal model "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_identifier:If this is observed data (not from a randomized experiment), there might always be missing confounders. Causal effect cannot be identified perfectly.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Estimand type: nonparametric-ate\n",
      "\n",
      "### Estimand : 1\n",
      "Estimand name: backdoor1 (Default)\n",
      "Estimand expression:\n",
      "     d                                  \n",
      "────────────(Expectation(Outcome|w0,w1))\n",
      "d[Treatment]                            \n",
      "Estimand assumption 1, Unconfoundedness: If U→{Treatment} and U→Outcome then P(Outcome|Treatment,w0,w1,U) = P(Outcome|Treatment,w0,w1)\n",
      "\n",
      "### Estimand : 2\n",
      "Estimand name: iv\n",
      "No such variable found!\n",
      "\n",
      "### Estimand : 3\n",
      "Estimand name: frontdoor\n",
      "No such variable found!\n",
      "\n"
     ]
    }
   ],
   "source": [
    "identified_estimand = model.identify_effect(proceed_when_unidentifiable=True)\n",
    "print(identified_estimand)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since this is observed data, the warning asks you if there are any unobserved confounders that are missing in this dataset. If there are, then ignoring them will lead to an incorrect estimate. \n",
    "If you want to disable the warning, you can use `proceed_when_unidentifiable=True` as an additional parameter to `identify_effect`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Estimate the target estimand"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*** Causal Estimate ***\n",
      "\n",
      "## Identified estimand\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "## Realized estimand\n",
      "b: Outcome~Treatment+w0+w1\n",
      "Target units: ate\n",
      "\n",
      "## Estimate\n",
      "Mean value: 1.9992001113324993\n",
      "\n",
      "Causal Estimate is 1.9992001113324993\n"
     ]
    },
    {
     "data": {
      "image/png": "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Py719PTkAwcOrEEdV69eFQ8aNMj36tWr4ocffrgiJiam4uzZs9IpU6Z4GyYvwcHBtcOGDaves2eP7PTp04LBUzt37pSeOXNGEh4eXmlLC9mSJUvkI0eO9N26davT8OHDq5577rmyvn37Vq9cudLlgQce8MvMzNTf46uvvnKZMmWK97lz5yTh4eGVL7zwQum4ceMqKysr2cqVK/UJ3qhRo6qeffbZMgC47777aufNm1eqe/Tv31/wvdd15coV8ZAhQ3yzs7NFjz32WPmoUaOqdu7c6RQWFuZz5swZ8eDBg32PHDkii42NrYiOjq44deqUNCoqyscwVgCYPXu257Vr18RDhw6tfu6550rj4uIqrl27Jn766ac9586d625Y15aY6/Ne2erNN99EaGgoCgsL8eyzz2LmzJkoLi7GW2+9hffee8+ma2zduhVisRg9evRAYWEhOP975MBPP/2Ef/zjH7h48SImT56MV155BRMnTkRFRQV++OEHm67/xhtv4OGHH8aZM2fw2GOP4YUXXgDnHG+88QbGjx9vcnxfZmYmHnzwQeTn52PWrFmYMmUKjhw5gvDwcKxevVpQf/ny5Rg6dCjS09MxatQozJ49GyEhIVi2bBlCQkJw9epVwTlDhw4FgBaR4Fmi2wmkPmsLbt++HQAwbtw4QdLo7u6OoUOHory8HPv377dfoIQQcictWLBg7M8//3yDc37T0gMAB8At1amoqLgpkUg4AH7+/PnbnPObO3fuzAHA77rrrtrr16/f0tWtrq6+OX78+EoA/O233y42vE67du1UjDGelZWlrx8fH1/u6uqqrq6uvnn8+PFsAPzTTz8t1JUnJibmAeCTJk2qMLzWhQsXbutif/31143us3bt2jwAfMyYMZWGx3/++ed8APyFF14orfs9Pvroo+UA+Pr16/OsvWenTp26LZVKeefOnWuvXLlyy7Bsw4YNuSKRiE+cOFEfb58+faplMhm/efPmrbrXun379i1T39ejjz5aXreuuTLD9+Ktt94yei/efPPNYgDc09NT/Y9//KOstrZWX/a///2vAAB/7rnnjN6Ps2fP3q5778rKypvDhw+vkkgkvO73bCnm+r5Xph7Z2dnc0H//+18OgM+dO5er1Wr98aNHj3Lt98pVKhW3pLS0lIvFYt6jRw9+48YNweP+++/nMpmM3759W3BuTk6O/nlmZiYHwKdPn25UZ+/evRwA79ixI8/KytIfr6mp4RERERwAf++99wTXAcBfffVVo2sdOnSISyQS7unpyYuKivTHz507x6VSKe/atSu/fv260Tlbt27lIpGIR0dHC+IvLCzkAPgDDzxg8T0y9Pnnn/P58+fb/EhJSbH52qbU1NTw4OBgDoBv3LjR5vNeffVVrv0ZYrL8+eef5wD4N998Y/YaCQkJPDMzs74hE0KIXQE4zDlH3YddEzzO+U0/Pz8VAP7HH3/kcM5vTps2rQwAX7RoUWHduqdOnbotEol4YGBgreHxhx56qBwAX7VqVb7uWLt27VSGiZivr6/KMJl77rnnSgHwzz77zOg+uqSiY8eOtTU1NYJ477777lpvb2+V4bHq6uqb7dq1U3l7e6sqKir0x/Py8rKcnZ3VnTt3rlWpVBbfB8OYkpOTTSaDEydOrBCLxbywsDCLaxM8uVyuzs3NzbJ27cYkeKbei0uXLt0GwOVyuVoXj+5RU1NzUyKR8KFDh1ZZi4tzfvPXX3/NB8C/++67Altjru97ZephmODduHGDu7q68gcffNBkEtejRw8OgF++fFlQpqNWq/mxY8c4AB4aGipI7kpLS3n//v25i4sLz8/PN3sdzs0neE8//TQHwJcuXSo459y5c1wkEvGgoCDBdRQKBS8uLhacM336dA6Ar1ixQn9s9uzZXPtHicnYoqOjuVgsNnk9Z2dn3q5dO4vfm6FOnTrpE1BbHnXfj/p65ZVXOAA+ceLEep03c+ZMDoD/73//M1n+xhtvcAD8/fffN3sNSvAIIS2BuQTP7gsdc233lW422/Hjx6WA6XFxvXr1UnXo0EF19epVcUFBAfPy8uKApjvv999/l2/bts3piSeeqFQqlZLbt2+LXnjhBf01hg0bVr1jxw4nlUoFsVisH383btw4kxMsgoODa0x14dx1112qQ4cOGY0vk0qlmDFjRvlHH33k9ttvv8lnzJhRAQDLly93qaysZE8++WSZLbt/HDx4UAZoupt1zw3l5uaKVSoVzpw5Ixk8eHDNI488UvHGG2949OrVyz8uLq5i5MiR1aGhodXt27e36yj33r17C96Lu+++WwUAXbt2VSkUCqPZyxKJBH5+fuqbN28adZFmZmaK33//fbcdO3bIrl+/Lq6srDSawnjjxg2bu1Tr+15Zu96vv/6KsrIyvPzyy4IuOAD6pU7MLWGiVqtRVFSk77pUKBT6MolEAi8vL0ilUjz++ON45ZVX0KtXLzzyyCMYMWIEhg4dCj8/P5u+76NHjwLQjDGrq1u3brj77ruRmZmJoqIioxj69+8Pd3d3wTkjR47Ejz/+iGPHjmH69OkAgH379gEAdu7ciUOHDgnOyc7Ohkqlwvnz5zFgwACjMm9vb9y+fdum7wXQjBG8UxYtWoTPPvsMPXr0wKpVq+7YfQkhpDWwa4JXUVGBwsJCEQC0a9dODQDFxcUiALjrrrtMJint2rVTX79+XVxQUCDy8vJSAcD48eONxuFt3rxZBgBjxozRJ28jRoyoWrNmjfOhQ4eknTt3Vp05c0YSEBCgDg4ONrkYX90lV3TEYrHJwfb//Oc/yz799FO37777zsUwwZPJZJg5c2aFLe9Hfn6+CAAWLVrkaqleaWkpA4DXX3+9zNfXV7106VLXpUuXui5ZssSVMYYhQ4ZUf/LJJ8UPPvig1cTGFnUTOODvcUweHh4m/50kEgk3XOfw/Pnz4gcffNC3sLBQNHjw4OrRo0dXKRQKLhaLceXKFfGvv/4qr6qqsnnNivq+V9akpqZCJBJh4sSJJstv3LgBV1dXdOjQQVBWXV2NgoICqFQq/e4TunGiuvXXdEnjyy+/DF9fX3zzzTdYtGgRvvjiCzDGMGLECHzyyScICQmxGGdRUREAICAgwGR5QEAArl69isLCQqMEr127dibrt2/f3ui6gGYNOQD45JNPLMZias27iooKyOWCOTPN7uuvv8ZLL72EXr16ISMjA97e3vU6X/deGr5PhnTHPT09GxUnIYQ0F7smeNu3b5fV1tbCz89P3bVrVxWgTxjEN2/eFHXv3l2wPt7t27dFAGC4ZltQUJCqc+fOqszMTPHly5dF27dvd1IoFPyBBx7QJzi6ZG/r1q2yzp07qzjnGDFihMnZsw0RGBionjBhQmVaWprzyZMnJXl5eezMmTOSmJiYSltb1HTfe0FBwS1zCWZdM2fOrJg5c2ZFfn4+27VrlywlJcX5p59+cpk0aZLP6dOns+3dmtdQn3zyiVt+fr7o22+/LZw1a5ZRwvvjjz/Kf/3113plBQ15r8ypra3FwYMH4evrCxcXF0H5oUOHcOvWLURERBi17nHOUVZWhuLiYv0xX1/NmtsFBQXw9PQ0eb1p06Zh2rRpKCwsxN69e5GSkoLly5dj/PjxOHv2rMXWPF2icevWLXTt2lVQnpWVZVRPx1yr2q1btwT1DZMZDw8Ps7HUpVarUVhYiKCgIJvP+eKLL1BYWGhz/b59+yI6Otrm+rp7zJkzB8HBwcjIyIC/v3+9zgeA7t27A9AsgWPKX3/9BUDTikoIIa2R3RI8lUqF999/3x0ApkyZov+Ff//999ecOHFCmpGR4dS9e3ejhYnPnj0rvnnzpjgwMFDl7e1t9Et95MiRVStWrHDZuHGj0549e5yGDBlSZdidFhwcXOvv76/esWOHU2BgoAr4e4kVe/nnP/9ZlpaW5vzNN9+46FomZ82aZfO6CQ888EDNn3/+Kd2+fbssJiamXrF5e3vz6Ojoqujo6Cq1Wo2ffvrJZfv27bJHH320EgDEYjEHNO97c7h06ZIYAB555BHBliE7d+4UdLEClmNuzHtV16lTp1BVVYXq6mqo1WpBF+1nn30GAHjmmWf0x3TJTN1le9q1awcfHx9kZmaaTO4MeXp6YuLEiZg4cSLUajWWL1+OXbt2IS4uzuw5/fr1w9GjR7Fjxw5BgnfhwgVcv34dQUFBgpako0ePoqSkRNBNq1sqpF+/fvpjgwcPxpEjR7B7925MmjTJ4vdg6Ny5c+Cco2/fvjaf88UXX+DKlSs2158+fXq9EryPPvoI8+bNQ9++fbFlyxZ9Al5fo0aNAqBZ4qbuZ6SkpAR79uyBi4sLBg8e3KDrE0JIc7PLMilZWVmiuLg4rz179sjuvvtu1fz58/V9PU899VQ5AHz44Ydut27d0t+vtrYWL7/8sodarcb06dPL615Tl6wtWrTIrbCwkI0cOVIwtm748OFV+/btk+nWzBs/frxdE7wJEyZUd+3aVfXrr7+6pKSkON9zzz21uu5jW7z00ktlUqkUr776qsLUkitVVVXYtm2bPhnatGmTzFR3cU5OjhgAXFxc9Emwt7c3Z4zh2rVrzbIPVqdOnVSApgXV8Pi6deucDJd0MWQp5vq+V5YcOXIEAFBYWIiNGzcalS1evBirV6/GhAkTEBkZqb92Tk6OILkDNGP1Ro4cidzcXFy4cEFQvn37dqNlU3Sys7MBwGpS+OSTTwIA3n33XeTk5OiPq1QqvPrqq1Cr1XjqqacE5xUVFeGdd94xOnb48GH8/PPPUCgUiImJ0R9/4YUXIJVKMWfOHJMtVtXV1di9e7fguG6JEF0yZIvLly8LBvpaeqxYscLma//nP//BvHnzMGDAAGRkZNiU3F28eBFnz541WrcQALp27Ypx48bh8uXLWLx4sVHZ/PnzUVZWhqlTpxptS0cIIa1JvVvwXn/9dXdA3+LBzpw5Iz1w4ICsuroa/fv3r/n5558L/P399VnKiBEjal566aXSL7/80q13795+0dHRlS4uLnzLli1OZ86ckQwaNKj6zTffFAz+GTt2bDVjDGfOnJFoXwuSt5EjR1YnJSXJr169Kr7nnntqAwMD7dp9KRKJ8PTTT5e9/vrrHgDw5JNPChJRS4KDg2uXLFlS+Nxzz3nef//9/mFhYVX33HNPbU1NDa5duybev3+/k4+Pj+qvv/7KAYCHHnrI29XVlYeEhFR36tRJxTnH3r17ZceOHZPef//9NeHh4fr3wMPDgw8YMKBm//79silTpnjee++9tWKxGDExMZWmxtjZ2wsvvFD2888/uzz++OPeq1evrggICFCfPn1akpGR4RQdHV2ZkpIi2CvOUsz9+/ev13tliS7Bi4yMRHx8PB577DH4+flh9+7d2LNnD0JCQvDLL7+Ac47S0lKUlJQIrsEYg6enJ+RyOeLi4pCUlIRNmzbhnnvuMaoXExMDNzc3DB48GJ07dwbnHLt378ahQ4cwYMAAjBkzxmKsQ4YMwdy5c/Hxxx8jODgY8fHxcHV1RXp6Ok6ePIlhw4bhtddeE5wXGhqKZcuW4cCBAxg6dCiysrKwevVqqNVqLF261KgrtkePHli+fDmefPJJ3HfffZgwYQK6deuGmpoaXL16Fbt374afnx/Onj1rdI/NmzdDLBYjKirK2lve5H788Ue8/fbbEIvFGD58OBYtWiSo07lzZ8yYMcPoWFhYGK5cuYLMzEx07tzZqOybb77BkCFD8OKLLyIjIwM9e/bEgQMHsH37dnTr1s3mdRIJIaRFqu8yKbqHTCbj3t7eqj59+lRPmzatLDU1Nc9w7bS6jx9//DF/0KBBVa6urmonJyfevXv3mrfeequ4vLzc7Dm9evWqAcC9vb1VppYlOXPmjH5dt6effrrM1DUsLc3BOb85ZMiQKlhY/iU3NzdLJBJxZ2dnnp2dbXX5ElOPo0ePZj/66KPld999d61MJuOenp7qHj161MyYMaMsPT09V1fviy++KJw4cWJFYGBgrbOzs9rT01MdHBxc88477xSZWh7kzJkzt8ePH1/p5eWlZoxxAPzbb78tsLZMirn3AgAfMmSIyaVQOnbsWNuxY0ej5Wx27NiRM2zYsCqFQqF2dXVVDxo0qGr16tX5mzZtygXA582bV2JrzPV9r0w9dMukDBo0iMtkMl5eXs7nzZvHO3TowGUyGe/evTt/9913eUVFBa+treW5ubkm17bLzs7mNTU1+inoVVVV3N/fnw8cOJDXtWTJEh4dHc2DgoK4XC7nXl5evG/fvvyjjz4yWnbE3DIpOr/++isfOnQod3Nz405OTrxXr176WA0ZXuf06dN88uTJ3NPTk8vlcj5kyBCLa8GdOHGCT58+nQcGBnKZTMa9vLz4fffdx5955hmekZFhVLewsJA7OzvzqKgos9e7k+bPn291yZURI0YIztMt22JuOZOrV6/yGTNm8Pbt23OpVMoDAwP5Sy+9ZHXZG85pmRRCSMsAM8uksAULFoy99957Vzz22GO279LdhmzevFk2fvx4n4ceeqhi9erVhc0dDzEvJycnwNvbG+7u7ujZs6e+Ja+uqqoqFBQUmJw97erqCg8PD8Gm9R988AHeeOMNHD161Gh82512+fJlBAUFYfr06fXq3qyvr776Ci+++CJ2796NYcOGNdl9WrPExESEhIQIWgYJIeROYowd4ZwLlmyw21ZljuqTTz5xA4B//etftCllE6moqHDOzc31vnXrVrubN28G3L5927+wsFBRW1tb7/GFp0+fRkVFBfr37y8o45yjuLgYeXl5guROJBLB29sbCoVCkNwBwJw5cxAYGIi33367viG1OhUVFfjggw8QFxdHyR0hhLRSdl/o2BEcO3ZMkpqa6nz06FHp1q1bncaPH181bNgwu6xBR/7GOUdhYaGioqLCaCaCSqUSl5eXu1RUVMg9PT0L5HK5zZNndK12dVvZamtrUVhYaHJfV5lMBi8vL7OLHgOAs7MzVq1ahe3bt6OsrMyhB99fvnwZzzzzjGA8GyGEkNaDEjwTDh48KF24cKG7u7s7j4qKqvzuu+9Mr4ZKGqWkpMRNl9w5OztXurm5lYjFYnV1dbW0uLhYoVKpxIWFhV4SiSRHKpXatB6MLsEzbMGrrKxEQUGBydmu7u7ucHNzM9lqV1doaChCQ0Nt++ZasZ49e2LBggXNHQYhhJBGoATPhFmzZlXUXbyX2JdKpRKVlZW5AYCTk1OVl5dXgS7JksvlVVKpNC8nJ8ePc85KSko8vL29C2y57ldffYWvvvoKwN9dsmVlwt51kUgELy8vODk52e17uhN0M3UJIYQQSyQA6BcGuePKy8vlnHMGAO7u7sV1W9AkEolKLpeXl5eXu1ZWVjqrVCqRWCy2eRmc2tpaFBQUCNY/AwAnJyd4enpa7JIlxBrOuU0tv4QQ0hxEAMpMjUsipClVVlY6A4BYLFbJZDKT+wfL5fIKg/o2N7WVl5cjJyfHZHLn4eEBb29vSu5Io1VXV0Mms2ntbUIIueMkAC7k5uY61dbWVksk1GNL7oza2lopAEilUrN/XchkMn2GVlNTIwNgtdu8sLAQ5eXC9ajFYjG8vLzoFzKxi5qaGv3+xIQQ0hKJ5s+fn80YO5GZmdm6BiORVqu2tlak656VSCRmJ08wxiASidTac6w2udXW1ppM7pydneHn50fJHbGbS5cuISAgAHK5vLlDIYQQk0QAUF5evnjLli3qkpISWhePNDm1Wq3/nIlEIouzY3XlhueYY2osqUKhgJeXl9Fm8oQ0RklJCf744w8EBwc3dyiEEGKWCADefvvtpMLCwvd//PFH0dGjR+VlZWU0cpg0GV3rHQCrg9S125mBc16vDE0ikcDPzw+urq40EJ7YRVlZGY4fP47Vq1fj/vvvR/fu3Zs7JEIIMYsZtnosXLhwjFwun845HyuTyZhEIlHTL0dib7W1tdLy8nIfAHB2di6WyWTCflWtsrIyH5VKJRWJRCo3N7ecuuXV1dUu1dXVcgBQq9VSkUhEC1ITm3DORYwxm2Zmq1QqVl1djczMzKIDBw7knT9/vqSp4yMtii+A3OYOgrQKzfFZ6cQ596t7kJnq1lq4cKEUmiBdBIWENNKWLVt6nD59ej0AeHl5LZw2bdoqc3UXL168pra2NlgikZx6/vnnoyxdd/HixWuef/75aDuHSxxUPT8vZQDy5s+fT39AtEGMscOm9vokpK6W9FkxmeAR0pQYY3cBuK59+Q7nfL6FulcBdASwlXM+1sp1W8x/LNLy0eeF2Io+K8RWLemzQiPPSXO4CaBU+zzIXCXGmBOADtqX55o6KEIIIcRRUIJH7jiuaTY+pn05yELVAQB0y6McteHS3zUmLtLm0OeF2Io+K8RWLeazQl20pFkwxl4D8LH2ZR/OudJEnf8CmANADSCAc559B0MkhBBCWi1qwSPNZSUA3ezZ9+oWMsY6A3hG+zKZkjtCCCHEdpTgkWbBOb+NvxO7SMbYb4yx3owxP8ZYBIBtAFyhGav3pqVrMcaiGWMbGWO3GWOVjLFLjLFvGGNdm/a7IC0B0+jJGJvOGFvMGDvEGKtijHHGWGU9rtOOMfYxY+wsY6ycMZbLGNvJGPsHo/WiHAJjTM4Yi2GMfcsYO8IYK2SM1TDGchhjGYyxfzLGrG5PQp8Vx8cY68gYe4Ex9iNj7Chj7Ib250oJY0zJGFvEGOth47XcGWNvM8ZOaM8vZIwdZIzNZoxJm+x7oC5a0ly0PwiXAXjSTJVSAA9zzjc0xfnEMWhbezPNFFdxzp1tuEYIgDQA/maqbAQQzTmvalCQpEVgjBUDcLdS7SyAyZzzv8xcgz4rbQBj7AUAX1mpVgPgZc751xauEwRgK4AuZqocATCWc17QoEAtoBY80my4xlMAYgFsApADoAqaX9bfAuhrJTl7HX8nd78DuB+aH7pRAC4DcAOwmjHWrUm+AdISXQeQAmC3rScwxnwBrIXms5MH4AkAAQB6AFisrTYB1n/Yk5bPHZqfMb8CeARAVwDeAPoCWAKAQ/Pvvpkx5lb3ZPqstCkV0CTyrwAYDc2/sS+A+wA8DeACACmArxhjk0xdgDEmA7AOmuSuAsC/ANwNzeoRC6AZXz4AwOom+Q445/SgR6t7AGgHTQsdB7Ae2tZog/Igg/KE5o6XHk36WXCHJqlvb3BsgfbfvtKG8z/V1lUBGGyi/BuD8t7N/f3So1Gfla8BtLNQ/m/tvzUHMJc+K/Sw8FnxBHBD+++9w0ydFww+T1NMlM81KJ9k7xipBY+0VtOgGaMHAG9y7f8WHc55JoD/aV/GMsbMdaeQVo5zXsI5T+Wc36rvudrxL09rX6ZyzvebqDYfmq4YEYBZDY+UNDfO+QtcM/7XnM+gaZkDgHDDAvqsEEOc80IASdqXA8xUe0779RjnPMFE+efQ9FwZ1rUbSvBIaxWp/foX5/xPM3UStV9FACKaPiTSCg0HoNA+TzRVgXOeA2Cn9uXkOxEUaR6c81oAurF3HeoU02eF1KXbulAw3pIx1gVAL+1Lc5+XGgCp2pdhjDG7bg9LCR5prfppvx6wUOcwNF0lANC/acMhrZTh58LSZ0lX1lE7Dos4rnbar8V1jtNnhegxxpzxdxJ/yESV+n5enPF3QmgXlOCRVke7l61uAPQlc/W4ZhZblvZl96aOi7RKus+FGsAVC/UMZ+nSZ8lBMcb64e/tE+t2wdJnpY1jjIkYYwGMsckAdgG4B0A1NF3zdRn+25v9PYUm/LxI7HkxQu4Qw7+Kc8zW0siGZtaST9OFQ1ox3WepQNs9Z47hQtv0WXJcn2i/cgi3nKLPShvFGNsIYLyJonMAZnHOD5oos/X3VJN9XqgFj7RGrgbPrS1kW6H9KljygBD8/Vmy9XME0GfJIWm3TwzTvlzChdsn0meFGMoB8AU069iZYuvvqSb7vFCCRwghpE1jjI0H8IH2pRLAq80YDml5oqFZjkkBzZp20wDkQrN24gHtYsYtDiV4pDUqM3hubZcC3bZDpU0UC2nddJ8lWz9HAH2WHApjbACABABiANegWY+swkRV+qy0UZzzSs55Kee8mHOeyTlfBc3SKAegmRiRyhirm0/Z+nuqyT4vlOCR1ijX4Lmflbq68jyLtUhbpfsseTLGLI1JNvyc0WfJQWh3uUmHpnUmB8A4zvk1M9Xps0L0tH8EzNO+7A3NbheGbP091WSfF0rwSGt0E3//pWO2aZwx5oS/17I619RBkVZJ97kQAwi0UM/wc0afJQfAGOsIYAs0v2CLAUzgnJ+1cAp9Vkhdhsuf9KtTZvhvb6kLt8k+L5TgkVZHu2vFMe3LQRaqDoDmhzEAHG3SoEhrZfi5sPRZ0pVd45znWqhHWgHGmB80yV0gNIPcIznn1n5G0GeF1GXYksvrlNX381IJ4LQ9gtKhBI+0Vuu0X7sxxnqbqROv/aqGZr9aQuraDaBI+zzeVAXtYrUjtC/X3omgSNNhjHkA2ATNmmM1AOI557tsOJU+K6SuUIPnRmvdcc4v4e+EzdznRQLNPtoAkME5L7dncJTgkdZqJQDdf4b36hYyxjoDeEb7Mplznl23DiHarYKWaV9GMcYGmqi2AIAMmr/Ql96h0EgT0O4+sA6a7jQ1gKmc8w22nEuflbaFMdbDSrkXgI+0L0sAbDVRbYn2a3/GWJyJ8tkA/OvUtRtWZ492QloNxtgb+Du5W619fguaJu9F0IxtKAUwgHN+vlmCJHcEY6wXAA+DQ08DeAqaVeZH1Kl+TLvLie5cXwAnAARAMzD6JQAZ2uv9S/sAgP9xzp8BaZUYY2IAyfh7e6mXAfzPwinqui0q9FlpOxhjtdD8MZACzVp3t6H5o6ADNBMqXgXQUVv9Bc75YhPX+P/27j/Wq7qO4/jzJVJZWgqR2rAuhFCigI1ozkICYQRRjVpslUGyFS5y/WFbYWPYKnNrUa7C2S+07If9GFFZ+YP44ZombiS0CpdcdVMG4WVogKC+++Pz+cbh6/me+0Pg+72H12P77J5zPj++n/PZ3b3v7+d8zjkvI12qHU9aCnANsAYYCiwElpOWEd0VEbOO+Tk4wLPBSpJI36ivbFHkGWBBX7+h2+AlaT0vDuRaGRUR3U31JwO/58i36WZ/BN5fDAxtcMmz+jt6K1fwaER0lbTj35WTgKS+BEcHgWURsbKinVGk2b3RLYo8CMyMiJ7+97KaL9HaoBXJYmA+aU3NbuBZ0h/xm4BJDu6sLyJiMzAB+BqwnfRt+ynSuqsrgTn+h23g35WTyFTSJfd1wL9JEwaHSP9nNgLXAeOqgjuAiNgBTCK9r3Yr6fl4+4DNpFnkS45HcAeewTMzMzOrHc/gmZmZmdWMAzwzMzOzmnGAZ2ZmZlYzDvDMzMzMasYBnpmZmVnNOMAzMzMzqxkHeGZmZmY14wDPzMzMrGYc4JmZmZnVzKnt7oCZ2WDVx/dVthQROlZ9MTMr8gyemZmVkrRIUrzUQLYuJHU1xkPStHb3x6yKAzwzs4E7o0WaUyizpKKcmdlx4Uu0ZmYDFBHPlB2XdKCw+2yrcmZmx4tn8MzMzMxqxgGemdkJJmlFXsfVnfcnSrpV0mOSDkna0lRekhZIWivpiVxmj6R7JC2U1PJvuaQJkr4gaaOk3ZIOS+qRdH8+fmZJna687u6HhWPRlNYX8qYVjndJOkvSDZK2S9ov6XFJP5B0XqHOEEmfyP3YK2lfPp/L+jB+w/IYPpDP5aCkbkmrJU2oqLc+93F13p8p6Q95XA5K+oek5ZJOK6nbDewoHPpz85j01m+zE8mXaM3M2kjSB4DbgJe3yB8O/BqY2pQ1DJie00ckzW++FCxpIrClpNkzgSk5LZY0KyIefgmnUfQG4Bagq3BsJPBxYKakS4FdwC+BuU11pwNTJb0vIu4oa1zSTOD2fA5FbwQWAldIWhoRq6o6KelzwFeA4p3MbwauA2ZImhERz1W1YdbJPINnZtY+ZwGrgX8C7wXOJgVInweQNBS4gxTc9QCfBS4gBXdjc7kDwEzguyXtB3A3sBR4B/Am4LXARcDVwGOkQOxnkoqBzqOkm0CWFI413yDy7hbndAswFLgCeH1OS4HDpEDvBuB6YAawDDg/92ke8ARp4uHmfO5HkTQZ+B0puLsPmJ/bHA5cCvyG9H/t25Jmt+gfwGWk4O6npCB3ODAe+EnOnwp8sqnOBblMw5ySMTHrHBHh5OTk5HQMEzCNFFwFsKgkf0Uh/+/A6S3auSaX2QOMbVHm8kJbU/rZz3OAp3Ldy0vyFzXa7sf59gBdJWW+mPOfz2leL+cyuylPwNactwYY0qIvt+Yy2wA15a0vtP+tkroCHsj5fy3J7yrUn9bu3zMnp6rkGTwzs/ZaHq3vsv10/vnViNheViAi7gbW5d0P9+eDI2InaYYP0ozasXBjRHSXHP95/nkKsCkifltS5h7gP3l7SlPeu4ALScHhVRHxfIvPvzb/HA9MbFHmv6TZw6NERAA/zruTymYRzQYLr8EzM2ufAP5UliHpfNLlWoANkk6vaOch0vq1ySXtnAIsyOmtwAjgFSVtjO17tyvd2eL4I4Xtu8oKRERIeoR0yfacpuxGALoVeLpiPHqA3aTznEz5GsT7ImJfi/qNtYhDSZfQd7UoZ9bRHOCZmbXP7orZu3GF7fv72N6I4o6kM0hr1ppv0Cjzmj5+Rm92lh2MiAOFZX6lZbLGMwSb72RtjMck4Ok+9mVEi+NPVtTZX9h+0d20ZoOFL9GambXPgYq8gQRczXfiriQFdwF8D5gNjCLdpNG4MaBxY8Gx+sLf6tJpf8s0v6f3WIxHfz6/rA9mg4Zn8MzMOlNxZm90ROxoWbKEpFcBH82710fEtRXlBoPGeGyMiF6flWd2svMMnplZZyquWRs9gPrjODKDdXtFuQsH0HY7NMZjIGNhdtJxgGdm1pm2cWSt2ocGUL94eXJIWQFJU0jPxmvlcKFsaRsnUOPGjJGSLmlTHw4Xtts9HmaVHOCZmXWg/MiOlXl3saQ5VeUlvVrSuYVD3YXteSXlXwl8p5du7Clsn9uy1IlxJ+mZgZAehDysqrCkcVX5A9RDWs8I7R8Ps0oO8MzMOtc3gL+QZovWSlol6Z2SXpff9zpW0gclfR94nPQ2BwAi4kng3ry7TNIySWMkjcjB4r3AxcC/Kj5/C/BC3l4h6TxJQyWdeqJn9CLiBdKryA6SLiv/TdLVkt6Sx+JsSW+T9ClJ64DNx6EP+0lvHQFYKukiSafl8fCaduso/oU0M+tQEXFI0lzSw3fnkl4dtqSiyqGm/auATaRXe305p/83T3pTxgSOfiRL8fN3SvoF6Rl6i3Nq2EB6g8UJExEPSppFWlM4EvhmRfGe49SNG4FVwNtJzx8s8l231jE8g2dm1sEiYm9EvAeYBdwG7CA9XuUwaY3eBuBLwMURsbap7jbSw35/lMseJj0Dbg0wPSK+3ocuLCK9Wu0hjn5GXFtExCZgDPAZ0hs8dgHPkfr2MPArUhA85jh9/k3Ax0iB816OzHCadRSlZR5mZmZmVheewTMzMzOrGQd4ZmZmZjXjAM/MzMysZhzgmZmZmdWMAzwzMzOzmnGAZ2ZmZlYzDvDMzMzMasYBnpmZmVnNOMAzMzMzqxkHeGZmZmY14wDPzMzMrGYc4JmZmZnVzP8A6xupfZaFpQQAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "estimate = model.estimate_effect(identified_estimand,\n",
    "        method_name=\"backdoor.linear_regression\")\n",
    "print(estimate)\n",
    "print(\"Causal Estimate is \" + str(estimate.value))\n",
    "\n",
    "# Plot Slope of line between action and outcome = causal effect                                                                                                 \n",
    "dowhy.plotter.plot_causal_effect(estimate, df[data_dict[\"treatment_name\"]], df[data_dict[\"outcome_name\"]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, for a non-linear data-generating process, the linear regression model is unable to distinguish the causal effect from the observed correlation. \n",
    "\n",
    "If the DGP was linear, however, then simple linear regression would have worked. To see that, try setting `is_linear=True` in cell **10** above.\n",
    "\n",
    "To model non-linear data (and data with high-dimensional confounders), we need more advanced methods. Below is an example using the double machine learning estimator from EconML. This estimator uses machine learning-based methods like gradient boosting trees to learn the relationship between the outcome and confounders, and the treatment and confounders, and then finally compares the residual variation between the outcome and treatment."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "*** Causal Estimate ***\n",
      "\n",
      "## Identified estimand\n",
      "Estimand type: nonparametric-ate\n",
      "\n",
      "## Realized estimand\n",
      "b: Outcome~Treatment+w0+w1 | \n",
      "Target units: ate\n",
      "\n",
      "## Estimate\n",
      "Mean value: 1.0407222093385826\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.linear_model import LassoCV\n",
    "from sklearn.ensemble import GradientBoostingRegressor\n",
    "dml_estimate = model.estimate_effect(identified_estimand, method_name=\"backdoor.econml.dml.DMLCateEstimator\",\n",
    "                                     control_value = 0,\n",
    "                                     treatment_value = 1,\n",
    "                                 confidence_intervals=False,\n",
    "                                method_params={\"init_params\":{'model_y':GradientBoostingRegressor(),\n",
    "                                                              'model_t': GradientBoostingRegressor(),\n",
    "                                                              \"model_final\":LassoCV(fit_intercept=False), \n",
    "                                                              'featurizer':PolynomialFeatures(degree=2, include_bias=True)},\n",
    "                                               \"fit_params\":{}})\n",
    "print(dml_estimate)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, the DML method obtains a better estimate, that is closer to the true causal effect of 1. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Check robustness of the estimate using refutation tests"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Add a Random Common Cause\n",
      "Estimated effect:1.0407222093385826\n",
      "New effect:1.0893211187663052\n",
      "\n"
     ]
    }
   ],
   "source": [
    "res_random=model.refute_estimate(identified_estimand, dml_estimate, method_name=\"random_common_cause\")\n",
    "print(res_random)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING:dowhy.causal_refuters.placebo_treatment_refuter:We assume a Normal Distribution as the sample has less than 100 examples.\n",
      "                 Note: The underlying distribution may not be Normal. We assume that it approaches normal with the increase in sample size.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Refute: Use a Placebo Treatment\n",
      "Estimated effect:1.0407222093385826\n",
      "New effect:3.963158074091803e-05\n",
      "p value:0.465397763210525\n",
      "\n"
     ]
    }
   ],
   "source": [
    "res_placebo=model.refute_estimate(identified_estimand, dml_estimate,\n",
    "        method_name=\"placebo_treatment_refuter\", placebo_type=\"permute\",\n",
    "        num_simulations=20)\n",
    "print(res_placebo)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Case-studies using DoWhy+EconML\n",
    "In practice, as the data becomes high-dimensional, simple estimators will not estimate the correct causal effect. More advanced supervised machine learning models also do not work and often are worse than simple regression, because they include additional regularization techniques that help in minimizing predictive error, but can have unwanted effects on estimating the causal effect. Therefore, we need methods targeted to estimate the causal effect. At the same time, we also need suitable refutation methods that can check the robustness of the estimate. \n",
    "\n",
    "\n",
    "Here is an example of using DoWhy+EconML for a high-dimensional dataset.\n",
    "\n",
    "\n",
    "More details are in this [notebook](https://github.com/microsoft/dowhy/blob/master/docs/source/example_notebooks/dowhy-conditional-treatment-effects.ipynb). \n",
    "\n",
    "\n",
    "Below we provide links to case studies that illustrate the use of DoWhy+EconML.\n",
    "\n",
    "### Estimating the impact of a customer loyalty program\n",
    "[Link to full notebook](https://github.com/microsoft/dowhy/blob/master/docs/source/example_notebooks/dowhy_example_effect_of_memberrewards_program.ipynb)\n",
    "\n",
    "\n",
    "###\tRecommendation A/B testing at an online company\n",
    "[Link to full notebook](https://github.com/microsoft/EconML/blob/master/notebooks/CustomerScenarios/Case%20Study%20-%20Recommendation%20AB%20Testing%20at%20An%20Online%20Travel%20Company%20-%20EconML%20%2B%20DoWhy.ipynb)\n",
    "\n",
    "###\tUser segmentation for targeting interventions\n",
    "[Link to full notebook](https://github.com/microsoft/EconML/blob/master/notebooks/CustomerScenarios/Case%20Study%20-%20Customer%20Segmentation%20at%20An%20Online%20Media%20Company%20-%20EconML%20%2B%20DoWhy.ipynb)\n",
    "\n",
    "### Multi-investment attribution at a software company\n",
    "[Link to full notebook](https://github.com/microsoft/EconML/blob/master/notebooks/CustomerScenarios/Case%20Study%20-%20Multi-investment%20Attribution%20at%20A%20Software%20Company%20-%20EconML%20%2B%20DoWhy.ipynb)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Connections to fundamental machine learning challenges\n",
    "Causality is connected to many fundamental challenges in building machine learning models, including out-of-distribution generalization, fairness, explanability and privacy. \n",
    "\n",
    "![ML challenges](images/causality_ml_example_challenges.png)\n",
    "\n",
    "How causality can help in solving many of the challenges above is an active area of research. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Further resources\n",
    "\n",
    "### DoWhy+EconML libraries\n",
    "DoWhy code: https://github.com/microsoft/dowhy\n",
    "\n",
    "DoWhy notebooks: https://github.com/microsoft/dowhy/tree/master/docs/source/example_notebooks\n",
    "\n",
    "EconML code: https://github.com/microsoft/econml\n",
    "\n",
    "EconML notebooks: https://github.com/microsoft/EconML/tree/master/notebooks\n",
    "\n",
    "### Video Lecture on causal inference and its connections to machine learning\n",
    "Microsoft Research Webinar: https://note.microsoft.com/MSR-Webinar-DoWhy-Library-Registration-On-Demand.html\n",
    "\n",
    "\n",
    "### Detailed KDD Tutorial on Causal Inference\n",
    "https://causalinference.gitlab.io/kdd-tutorial/\n",
    "\n",
    "### Book chapters on causality and machine learning\n",
    "http://causalinference.gitlab.io/\n",
    "\n",
    "### Causality and Machine Learning group at Microsoft\n",
    "https://www.microsoft.com/en-us/research/group/causal-inference/\n"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "Tags",
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": true,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": true,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "165px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
